# Таймкоды к курсу "Асинхронное программирование"

Общее оглавление курса тут: [Asynchronous.md](Asynchronous.md)

## [Асинхронное программирование в Node.js и JavaScript](https://youtu.be/hY6Z6qNYzmc)

- [05:45  Callbacks](https://youtu.be/hY6Z6qNYzmc?t=345)
- [10:00  Async.js or analogues](https://youtu.be/hY6Z6qNYzmc?t=600)
- [15:47  Events](https://youtu.be/hY6Z6qNYzmc?t=947)
- [18:00  Promise](https://youtu.be/hY6Z6qNYzmc?t=1080)
- [25:20  async/await](https://youtu.be/hY6Z6qNYzmc?t=1520)
- [27:10  Functor + Chaining + composition](https://youtu.be/hY6Z6qNYzmc?t=1630)
- [30:49  Problems of callback, async.js, Proimise, async/await](https://youtu.be/hY6Z6qNYzmc?t=1849)
- [34:00  Add timeout to any function](https://youtu.be/hY6Z6qNYzmc?t=2040)
- [36:55  Make function cancelable](https://youtu.be/hY6Z6qNYzmc?t=2215)
- [37:59  More wrappers](https://youtu.be/hY6Z6qNYzmc?t=2279)
- [39:22  Promisify and Callbackify](https://youtu.be/hY6Z6qNYzmc?t=2362)
- [48:47  Sync function to async](https://youtu.be/hY6Z6qNYzmc?t=2927)
- [41:43  Sync function to Promise](https://youtu.be/hY6Z6qNYzmc?t=2503)
- [43:17  Convertors](https://youtu.be/hY6Z6qNYzmc?t=2597)
- [43:31  Metasync](https://youtu.be/hY6Z6qNYzmc?t=2611)
- [45:26  Function composition](https://youtu.be/hY6Z6qNYzmc?t=2726)
- [47:09  Asynchronous function composition](https://youtu.be/hY6Z6qNYzmc?t=2829)
- [47:58  Flow communication like in electronics](https://youtu.be/hY6Z6qNYzmc?t=2878)
- [50:06  Collectors](https://youtu.be/hY6Z6qNYzmc?t=3006)
- [59:17  Queue](https://youtu.be/hY6Z6qNYzmc?t=3557)

## [Таймеры, таймауты, EventEmitter в JavaScript и Node.js](https://youtu.be/LK2jveAnRNg)

- [00:30  callback sync/async](https://youtu.be/LK2jveAnRNg?t=30)
- [01:35  временная задержка sleep.js](https://youtu.be/LK2jveAnRNg?t=95)
- [05:35  await-sleep.js](https://youtu.be/LK2jveAnRNg?t=335)
- [08:40  sleep-then.js](https://youtu.be/LK2jveAnRNg?t=520)
- [09:30  order.js](https://youtu.be/LK2jveAnRNg?t=570)
- [18:38  precision.js](https://youtu.be/LK2jveAnRNg?t=1118)
- [22:13  blocking.js](https://youtu.be/LK2jveAnRNg?t=1333)
- [22:50  timers.js](https://youtu.be/LK2jveAnRNg?t=1370)
- [29:35  ref-unref.js](https://youtu.be/LK2jveAnRNg?t=1775)
- [32:05  enroll.js](https://youtu.be/LK2jveAnRNg?t=1925)
- [34:57  eventloop.txt](https://youtu.be/LK2jveAnRNg?t=2097)
- [37:37  eventEmitter](https://youtu.be/LK2jveAnRNg?t=2257)
- [44:32  simple.js](https://youtu.be/LK2jveAnRNg?t=2672)
- [47:48  usage.js](https://youtu.be/LK2jveAnRNg?t=2868)
- [48:30  enhanced.js](https://youtu.be/LK2jveAnRNg?t=2910)
- [50:18  star-fix.js](https://youtu.be/LK2jveAnRNg?t=3018)
- [51:10  usage.js](https://youtu.be/LK2jveAnRNg?t=3070)
- [53:15  closure.js](https://youtu.be/LK2jveAnRNg?t=3195)
- [54:50  fp.js](https://youtu.be/LK2jveAnRNg?t=3290)
- [57:10  methods.js](https://youtu.be/LK2jveAnRNg?t=3430)
- [1:06:35  min.js](https://youtu.be/LK2jveAnRNg?t=3995)
- [1:12:31  prod.js](https://youtu.be/LK2jveAnRNg?t=4351)

## [Асинхронное программирование на callback`ах в JavaScript](https://youtu.be/z8Hg6zgi3yQ)

- [01:20  пример callback функции](https://youtu.be/z8Hg6zgi3yQ?t=80)
- [02:40  пример последовательного исполнения callback функций](https://youtu.be/z8Hg6zgi3yQ?t=160)
- [05:52  пример параллельного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=352)
- [15:18  пример последовательного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=918)
- [19:05  chain исполнение async функций](https://youtu.be/z8Hg6zgi3yQ?t=1145)
- [41:16  где можно встретить асинхронные функции](https://youtu.be/z8Hg6zgi3yQ?t=2476)

## [Неблокирующее асинхронное итерирование в JavaScript](https://youtu.be/wYA2cIRYLoA)

- [01:02  блокирующее итерирование по массиву](https://youtu.be/wYA2cIRYLoA?t=62)
- [03:24  блокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=204)
- [04:47  неблокирующее итерирование с помощью setTimeout](https://youtu.be/wYA2cIRYLoA?t=287)
- [06:45  неблокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=405)
- [08:20  неблокирующее итерирование без задержки](https://youtu.be/wYA2cIRYLoA?t=500)
- [13:00  неблокирующее итерирование без задержки с помощью for await](https://youtu.be/wYA2cIRYLoA?t=780)
- [19:30  использование асинхронного итерирования для обычных массивов](https://youtu.be/wYA2cIRYLoA?t=1170)

## [Асинхронность с библиотекой async.js](https://youtu.be/XQ94wQc-erU)

## [Асинхронность на промисах, Promise, all, then, catch, race](https://youtu.be/RMl4r6s1Y8M)

## [Асинхронные функции, async/await, thenable, обработка ошибок](https://youtu.be/Jdf_tZuJbHI)

## [Асинхронные адаптеры: promisify, callbackify, asyncify...](https://youtu.be/76k6_YkYRmU)

## [Асинхронные коллекторы данных](https://youtu.be/tgodt1JL6II)

## [Необработанные ошибки в промисах на Node.js](https://youtu.be/1Ml5NE2fsZ8)

## [Проблема асинхронного стектрейса в JavaScript и Node.js](https://youtu.be/pfiHTx3j87Y)

## [Генераторы и асинхронные генераторы в JavaScript](https://youtu.be/kvNm9D32s8s)

- [00:00  Способы объявления генераторов](https://youtu.be/kvNm9D32s8s?t=0)
- [10:41  Пример генератора с yield](https://youtu.be/kvNm9D32s8s?t=641)
- [15:54  Пример генератора с yield и return](https://youtu.be/kvNm9D32s8s?t=954)
- [18:47  Получение значений из генератора циклом for...of](https://youtu.be/kvNm9D32s8s?t=1127)
- [21:04  Получение значений из генератора spead - оператором](https://youtu.be/kvNm9D32s8s?t=1264)
- [21:50  Метод next](https://youtu.be/kvNm9D32s8s?t=1310)
- [23:30  Пример генератора с yield * возвращающего итерируемые объекты](https://youtu.be/kvNm9D32s8s?t=1410)
- [25:05  Пример генератора с yield * возвращающего другие генераторы](https://youtu.be/kvNm9D32s8s?t=1505)
- [26:18  Метод return](https://youtu.be/kvNm9D32s8s?t=1578)
- [28:11  Метод throw](https://youtu.be/kvNm9D32s8s?t=1691)
- [29:05  Обобщение](https://youtu.be/kvNm9D32s8s?t=1745)

## [Итераторы и асинхронные итераторы в JavaScript](https://youtu.be/rBGFlWpVpGs)

## [Отмена асинхронных операций, cancellable callback and Promise в JavaScript](https://youtu.be/T8fXlnqI4Ws)

## [Асинхронная композиция функций на JavaScript](https://youtu.be/3ZCrMlMpOrM)

## [Thenable и легковесный await в JavaScript](https://youtu.be/DXp__1VNIvI)

## [Конкурентная асинхронная очередь на JavaScript](https://youtu.be/Lg46AH8wFvg)

## [Паттерн Revealing Constructor - открытый конструктор](https://youtu.be/leR5sXRkuJI)

## [Future: Асинхронность на фьючерах без состояния](https://youtu.be/22ONv3AGXdk)

## [Deferred: Асинхронность на диферах с состоянием](https://youtu.be/a2fVA1o-ovM)

## [Модель акторов для параллельных вычислений](https://youtu.be/xp5MVKEqxY4)

## [Паттерн Наблюдатель (Observer + Observable)](https://youtu.be/_bFXuLcXoXg)

## [Асинхронность на RxJS и потоки событий](https://youtu.be/0kcpMAl-wfE)

## [Асинхронный пул для worker thread pool в Node.js](https://youtu.be/Jj5KZRq4wYI)
